package cn.iocoder.yudao.module.biz.controller.admin.salesteam.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 销售团队信息分页 Request VO")
@Data
public class BizSalesTeamPageReqVO extends PageParam {

    @Schema(description = "页码，从 1 开始", requiredMode = Schema.RequiredMode.REQUIRED,example = "1")
    @NotNull(message = "页码不能为空")
//    @Min(value = 1, message = "页码最小值为 1")
    private Integer pageNo = 1;


    @Schema(description = "每页条数，最大值为 100", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    @NotNull(message = "每页条数不能为空")
//    @Min(value = 1, message = "每页条数最小值为 1")
    @Max(value = 100, message = "每页条数最大值为 100")
    private Integer pageSize = 10;


    @Schema(description = "小组名称", example = "赵六")
    private String teamName;

    @Schema(description = "小组编号")
    private String teamCode;

    @Schema(description = "小组经理ID，关联销售人员表的员工ID", example = "25400")
    private Integer managerId;

    @Schema(description = "所属部门ID，关联部门表", example = "1808")
    private Integer departmentId;

    @Schema(description = "小组销售目标金额")
    private BigDecimal teamGoal;

    @Schema(description = "本季度销售目标")
    private BigDecimal currentQuarterTarget;

    @Schema(description = "小组描述信息", example = "随便")
    private String teamDescription;

    @Schema(description = "小组成立日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDate[] establishmentDate;

    @Schema(description = "小组状态：1-活跃，0-已解散", example = "2")
    private Integer status;

    @Schema(description = "负责销售区域")
    private String region;

    @Schema(description = "重点销售产品类别")
    private String productFocus;

    @Schema(description = "合作模式")
    private String contractType;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}